home *** CD-ROM | disk | FTP | other *** search
- # Local additions to Autoconf macros.
- # Copyright (C) 1992, 1994, 1995 Free Software Foundation, Inc.
- # Franτois Pinard <pinard@iro.umontreal.ca>, 1992.
-
- AC_DEFUN(jm_MAINTAINER_MODE,
- [AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
- dnl maintainer-mode is disabled by default
- AC_ARG_ENABLE(maintainer-mode,
- [ --enable-maintainer-mode enable make rules and dependencies not useful
- (and sometimes confusing) to the casual installer],
- USE_MAINTAINER_MODE=$enableval,
- USE_MAINTAINER_MODE=no)
- AC_MSG_RESULT($USE_MAINTAINER_MODE)
- if test $USE_MAINTAINER_MODE = yes; then
- MAINT=
- else
- MAINT='#M#'
- fi
- AC_SUBST(MAINT)dnl
- ]
- )
-
- AC_DEFUN(AM_SYS_POSIX_TERMIOS,
- [AC_CACHE_CHECK([POSIX termios], am_cv_sys_posix_termios,
- [AC_TRY_LINK([#include <sys/types.h>
- #include <unistd.h>
- #include <termios.h>],
- [/* SunOS 4.0.3 has termios.h but not the library calls. */
- tcgetattr(0, 0);],
- am_cv_sys_posix_termios=yes,
- am_cv_sys_posix_termios=no)])
- ])
-
- AC_DEFUN(AM_HEADER_TIOCGWINSZ_NEEDS_SYS_IOCTL,
- [AC_REQUIRE([AM_SYS_POSIX_TERMIOS])
- AC_CACHE_CHECK([whether use of TIOCGWINSZ requires sys/ioctl.h],
- am_cv_sys_tiocgwinsz_needs_sys_ioctl_h,
- [am_cv_sys_tiocgwinsz_needs_sys_ioctl_h=no
-
- gwinsz_in_termios_h=no
- if test $am_cv_sys_posix_termios = yes; then
- AC_EGREP_CPP([yes],
- [#include <sys/types.h>
- # include <termios.h>
- # ifdef TIOCGWINSZ
- yes
- # endif
- ], gwinsz_in_termios_h=yes)
- fi
-
- if test $gwinsz_in_termios_h = no; then
- AC_EGREP_CPP([yes],
- [#include <sys/types.h>
- # include <sys/ioctl.h>
- # ifdef TIOCGWINSZ
- yes
- # endif
- ], am_cv_sys_tiocgwinsz_needs_sys_ioctl_h=yes)
- fi
- ])
- if test $am_cv_sys_tiocgwinsz_needs_sys_ioctl_h = yes; then
- AC_DEFINE(GWINSZ_IN_SYS_IOCTL)
- fi
- ])
-
- AC_DEFUN(AM_FUNC_STRTOD,
- [AC_CACHE_CHECK([for working strtod], ac_cv_func_strtod,
- [AC_TRY_RUN([
- double strtod ();
- int
- main()
- {
- {
- /* Some versions of Linux strtod mis-parse strings with leading '+'. */
- char *string = " +69";
- char *term;
- double value;
- value = strtod (string, &term);
- if (value != 69 || term != (string + 4))
- exit (1);
- }
-
- {
- /* Under Solaris 2.4, strtod returns the wrong value for the
- terminating character under some conditions. */
- char *string = "NaN";
- char *term;
- strtod (string, &term);
- if (term != string && *(term - 1) == 0)
- exit (1);
- }
- exit (0);
- }
- ], ac_cv_func_strtod=yes, ac_cv_func_strtod=no, ac_cv_func_strtod=no)])
- test $ac_cv_func_strtod = no && LIBOBJS="$LIBOBJS strtod.o"
- AC_SUBST(LIBOBJS)dnl
- if test $ac_cv_func_strtod = no; then
- AC_CHECK_FUNCS(pow)
- if test $ac_cv_func_pow = no; then
- AC_CHECK_LIB(m, pow)
- fi
- fi
- ])
-
- ## --------------------------------------------------------- ##
- ## Use A*_PROG_INSTALL, supplementing it with INSTALL_SCRIPT ##
- ## substitution. ##
- ## --------------------------------------------------------- ##
-
- AC_DEFUN(fp_PROG_INSTALL,
- [AC_PROG_INSTALL
- test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL} -m 755'
- AC_SUBST(INSTALL_SCRIPT)dnl
- ])
-
- ## ------------------------------- ##
- ## Check for function prototypes. ##
- ## ------------------------------- ##
-
- AC_DEFUN(fp_C_PROTOTYPES,
- [AC_REQUIRE([fp_PROG_CC_STDC])
- AC_MSG_CHECKING([for function prototypes])
- if test "$ac_cv_prog_cc_stdc" != no; then
- AC_MSG_RESULT(yes)
- AC_DEFINE(PROTOTYPES)
- U= ANSI2KNR=
- else
- AC_MSG_RESULT(no)
- U=_ ANSI2KNR=./ansi2knr
- fi
- AC_SUBST(U)dnl
- AC_SUBST(ANSI2KNR)dnl
- ])
-
- ## ----------------------------------------- ##
- ## ANSIfy the C compiler whenever possible. ##
- ## ----------------------------------------- ##
-
- # @defmac AC_PROG_CC_STDC
- # @maindex PROG_CC_STDC
- # @ovindex CC
- # If the C compiler in not in ANSI C mode by default, try to add an option
- # to output variable @code{CC} to make it so. This macro tries various
- # options that select ANSI C on some system or another. It considers the
- # compiler to be in ANSI C mode if it defines @code{__STDC__} to 1 and
- # handles function prototypes correctly.
- #
- # If you use this macro, you should check after calling it whether the C
- # compiler has been set to accept ANSI C; if not, the shell variable
- # @code{ac_cv_prog_cc_stdc} is set to @samp{no}. If you wrote your source
- # code in ANSI C, you can make an un-ANSIfied copy of it by using the
- # program @code{ansi2knr}, which comes with Ghostscript.
- # @end defmac
-
- AC_DEFUN(fp_PROG_CC_STDC,
- [AC_MSG_CHECKING(for ${CC-cc} option to accept ANSI C)
- AC_CACHE_VAL(ac_cv_prog_cc_stdc,
- [ac_cv_prog_cc_stdc=no
- ac_save_CFLAGS="$CFLAGS"
- # Don't try gcc -ansi; that turns off useful extensions and
- # breaks some systems' header files.
- # AIX -qlanglvl=ansi
- # Ultrix and OSF/1 -std1
- # HP-UX -Aa -D_HPUX_SOURCE
- # SVR4 -Xc -D__EXTENSIONS__
- for ac_arg in "" -qlanglvl=ansi -std1 "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
- do
- CFLAGS="$ac_save_CFLAGS $ac_arg"
- AC_TRY_COMPILE(
- [#if !defined(__STDC__) || __STDC__ != 1
- choke me
- #endif
- ], [/* DYNIX/ptx V4.1.3 can't compile sys/stat.h with -Xc -D__EXTENSIONS__. */
- #include <sys/types.h>
- #include <sys/stat.h>
- int test (int i, double x);
- struct s1 {int (*f) (int a);};
- struct s2 {int (*f) (double a);};],
- [ac_cv_prog_cc_stdc="$ac_arg"; break])
- done
- CFLAGS="$ac_save_CFLAGS"
- ])
- AC_MSG_RESULT($ac_cv_prog_cc_stdc)
- case "x$ac_cv_prog_cc_stdc" in
- x|xno) ;;
- *) CC="$CC $ac_cv_prog_cc_stdc" ;;
- esac
- ])
-
- ## -------------------------------------------- ##
- ## Check if --with-regex was given. ##
- ## Slightly modified version of fp_WITH_REGEX. ##
- ## -------------------------------------------- ##
-
- AC_DEFUN(ud_WITH_REGEX,
- [AC_MSG_CHECKING(which of rx or regex is wanted)
- AC_ARG_WITH(regex,
- [ --with-regex use older regex in lieu of GNU rx for matching],
- [if test "$withval" = yes; then
- ac_with_regex=1
- AC_MSG_RESULT(regex)
- AC_DEFINE(WITH_REGEX)
- REGEXOBJ=regex.o
- fi])
- if test -z "$ac_with_regex"; then
- AC_MSG_RESULT(rx)
- AC_CHECK_FUNC(re_rx_search, , [REGEXOBJ=rx.o])
- fi
- AC_SUBST(REGEXOBJ)dnl
- ])
-
- dnl AC_REPLACE_GNU_GETOPT
- AC_DEFUN(AC_REPLACE_GNU_GETOPT,
- [AC_CHECK_FUNC(getopt_long, , [LIBOBJS="$LIBOBJS getopt1.o getopt.o"])
- AC_SUBST(LIBOBJS)dnl
- ])
-
- dnl --------------------------------------------------------- ##
- dnl The following definitions and this message have to go ##
- dnl into the aclocal.m4 files of the packages to be ##
- dnl internationalized. ##
- dnl Last updated for gettext-0.10.22. ##
- dnl --------------------------------------------------------- ##
-
- dnl ud_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR,
- dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]])
- AC_DEFUN(ud_PATH_PROG_WITH_TEST,
- [# Extract the first word of "$2", so it can be a program name with args.
- set dummy $2; ac_word=[$]2
- AC_MSG_CHECKING([for $ac_word])
- AC_CACHE_VAL(ac_cv_path_$1,
- [case "[$]$1" in
- /*)
- ac_cv_path_$1="[$]$1" # Let the user override the test with a path.
- ;;
- *)
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
- for ac_dir in ifelse([$5], , $PATH, [$5]); do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- if [$3]; then
- ac_cv_path_$1="$ac_dir/$ac_word"
- break
- fi
- fi
- done
- IFS="$ac_save_ifs"
- dnl If no 4th arg is given, leave the cache variable unset,
- dnl so AC_PATH_PROGS will keep looking.
- ifelse([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4"
- ])dnl
- ;;
- esac])dnl
- $1="$ac_cv_path_$1"
- if test -n "[$]$1"; then
- AC_MSG_RESULT([$]$1)
- else
- AC_MSG_RESULT(no)
- fi
- AC_SUBST($1)dnl
- ])
-
- dnl Check NLS options
-
- AC_DEFUN(ud_LC_MESSAGES,
- [if test $ac_cv_header_locale_h = yes; then
- AC_CACHE_CHECK([for LC_MESSAGES], ud_cv_val_LC_MESSAGES,
- [AC_TRY_LINK([#include <locale.h>], [return LC_MESSAGES],
- ud_cv_val_LC_MESSAGES=yes, ud_cv_val_LC_MESSAGES=no)])
- if test $ud_cv_val_LC_MESSAGES = yes; then
- AC_DEFINE(HAVE_LC_MESSAGES)
- fi
- fi])
-
- AC_DEFUN(ud_WITH_NLS,
- [AC_MSG_CHECKING([whether NLS is requested])
- dnl Default is enabled NLS
- AC_ARG_ENABLE(nls,
- [ --disable-nls do not use Native Language Support],
- USE_NLS=$enableval, USE_NLS=yes)
- AC_MSG_RESULT($USE_NLS)
- AC_SUBST(USE_NLS)
-
- USE_INCLUDED_LIBINTL=no
-
- dnl If we use NLS figure out what method
- if test "$USE_NLS" = "yes"; then
- AC_DEFINE(ENABLE_NLS)
- AC_MSG_CHECKING([for explicitly using GNU gettext])
- AC_ARG_WITH(included-gettext,
- [ --with-included-gettext use the GNU gettext library included here],
- nls_cv_force_use_gnu_gettext=$withval,
- nls_cv_force_use_gnu_gettext=no)
- AC_MSG_RESULT($nls_cv_force_use_gnu_gettext)
-
- nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext"
- if test "$nls_cv_force_use_gnu_gettext" != "yes"; then
- dnl User does not insist on using GNU NLS library. Figure out what
- dnl to use. If gettext or catgets are available (in this order) we
- dnl use this. Else we have to fall back to GNU NLS library.
- dnl catgets is only used if permitted by option --with-catgets.
- nls_cv_header_intl=
- nls_cv_header_libgt=
- CATOBJEXT=NONE
-
- AC_CHECK_HEADER(libintl.h,
- [AC_CHECK_LIB(intl, bindtextdomain)
- AC_CHECK_FUNC(gettext,
- [AC_DEFINE(HAVE_GETTEXT)
- ud_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
- [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no)dnl
- if test "$MSGFMT" != "no"; then
- AC_CHECK_FUNCS(dcgettext)
- AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
- ud_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
- [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :)
- AC_TRY_LINK(, [extern int _nl_msg_cat_cntr;
- return _nl_msg_cat_cntr],
- [CATOBJEXT=.gmo
- DATADIRNAME=share],
- [CATOBJEXT=.mo
- DATADIRNAME=lib])
- INSTOBJEXT=.mo
- fi])])
-
- if test "$CATOBJEXT" = "NONE"; then
- AC_MSG_CHECKING([whether catgets can be used])
- AC_ARG_WITH(catgets,
- [ --with-catgets use catgets functions if available],
- nls_cv_use_catgets=$withval, nls_cv_use_catgets=no)
- AC_MSG_RESULT($nls_cv_use_catgets)
-
- if test "$nls_cv_use_catgets" = "yes"; then
- dnl No gettext in C library. Try catgets next.
- AC_CHECK_LIB(i, main)
- AC_CHECK_FUNC(catgets,
- [AC_DEFINE(HAVE_CATGETS)
- INTLOBJS="\$(CATOBJS)"
- AC_PATH_PROG(GENCAT, gencat, no)dnl
- if test "$GENCAT" != "no"; then
- AC_PATH_PROG(GMSGFMT, gmsgfmt, no)
- if test "$GMSGFMT" = "no"; then
- ud_PATH_PROG_WITH_TEST(GMSGFMT, msgfmt,
- [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no)
- fi
- ud_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
- [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :)
- USE_INCLUDED_LIBINTL=yes
- CATOBJEXT=.cat
- INSTOBJEXT=.cat
- DATADIRNAME=lib
- INTLDEPS="../intl/libintl.a"
- INTLLIBS=$INTLDEPS
- LIBS=`echo $LIBS | sed -e 's/-lintl//'`
- nls_cv_header_intl=intl/libintl.h
- nls_cv_header_libgt=intl/libgettext.h
- fi])
- fi
- fi
-
- if test "$CATOBJEXT" = "NONE"; then
- dnl Neither gettext nor catgets in included in the C library.
- dnl Fall back on GNU gettext library.
- nls_cv_use_gnu_gettext=yes
- fi
- fi
-
- if test "$nls_cv_use_gnu_gettext" = "yes"; then
- dnl Mark actions used to generate GNU NLS library.
- INTLOBJS="\$(GETTOBJS)"
- ud_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
- [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], msgfmt)
- AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
- ud_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
- [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :)
- AC_SUBST(MSGFMT)
- USE_INCLUDED_LIBINTL=yes
- CATOBJEXT=.gmo
- INSTOBJEXT=.mo
- DATADIRNAME=share
- INTLDEPS="../intl/libintl.a"
- INTLLIBS=$INTLDEPS
- LIBS=`echo $LIBS | sed -e 's/-lintl//'`
- nls_cv_header_intl=intl/libintl.h
- nls_cv_header_libgt=intl/libgettext.h
- fi
-
- dnl Test whether we really found GNU xgettext.
- if test "$XGETTEXT" != ":"; then
- dnl If it is no GNU xgettext we define it as : so that the
- dnl Makefiles still can work.
- if $XGETTEXT --omit-header /dev/null 2> /dev/null; then
- : ;
- else
- AC_MSG_RESULT(
- [found xgettext programs is not GNU xgettext; ignore it])
- XGETTEXT=":"
- fi
- fi
-
- # We need to process the po/ directory.
- POSUB=po
- else
- DATADIRNAME=share
- nls_cv_header_intl=intl/libintl.h
- nls_cv_header_libgt=intl/libgettext.h
- fi
-
- # If this is used in GNU gettext we have to set USE_NLS to `yes'
- # because some of the sources are only built for this goal.
- if test "$PACKAGE" = gettext; then
- USE_NLS=yes
- USE_INCLUDED_LIBINTL=yes
- fi
-
- dnl These rules are solely for the distribution goal. While doing this
- dnl we only have to keep exactly one list of the available catalogs
- dnl in configure.in.
- for lang in $ALL_LINGUAS; do
- GMOFILES="$GMOFILES $lang.gmo"
- POFILES="$POFILES $lang.po"
- done
-
- dnl Make all variables we use known to autoconf.
- AC_SUBST(USE_INCLUDED_LIBINTL)
- AC_SUBST(CATALOGS)
- AC_SUBST(CATOBJEXT)
- AC_SUBST(DATADIRNAME)
- AC_SUBST(GMOFILES)
- AC_SUBST(INSTOBJEXT)
- AC_SUBST(INTLDEPS)
- AC_SUBST(INTLLIBS)
- AC_SUBST(INTLOBJS)
- AC_SUBST(POFILES)
- AC_SUBST(POSUB)
- ])
-
- AC_DEFUN(ud_GNU_GETTEXT,
- [AC_REQUIRE([AC_PROG_MAKE_SET])dnl
- AC_REQUIRE([AC_PROG_CC])dnl
- AC_REQUIRE([AC_ISC_POSIX])dnl
- AC_REQUIRE([AC_PROG_RANLIB])dnl
- AC_REQUIRE([AC_HEADER_STDC])dnl
- AC_REQUIRE([AC_C_CONST])dnl
- AC_REQUIRE([AC_C_INLINE])dnl
- AC_REQUIRE([AC_TYPE_OFF_T])dnl
- AC_REQUIRE([AC_TYPE_SIZE_T])dnl
- AC_REQUIRE([AC_FUNC_ALLOCA])dnl
- AC_REQUIRE([AC_FUNC_MMAP])dnl
-
- AC_CHECK_HEADERS([argz.h limits.h locale.h nl_types.h malloc.h string.h \
- unistd.h values.h])
- AC_CHECK_FUNCS([getcwd munmap putenv setenv setlocale strchr strcasecmp \
- __argz_count __argz_stringify __argz_next])
-
- if test "${ac_cv_func_stpcpy+set}" != "set"; then
- AC_CHECK_FUNCS(stpcpy)
- fi
- if test "${ac_cv_func_stpcpy}" = "yes"; then
- AC_DEFINE(HAVE_STPCPY)
- fi
-
- ud_LC_MESSAGES
- ud_WITH_NLS
-
- if test "x$CATOBJEXT" != "x"; then
- if test "x$ALL_LINGUAS" = "x"; then
- LINGUAS=
- else
- AC_MSG_CHECKING(for catalogs to be installed)
- NEW_LINGUAS=
- for lang in ${LINGUAS=$ALL_LINGUAS}; do
- case "$ALL_LINGUAS" in
- *$lang*) NEW_LINGUAS="$NEW_LINGUAS $lang" ;;
- esac
- done
- LINGUAS=$NEW_LINGUAS
- AC_MSG_RESULT($LINGUAS)
- fi
-
- dnl Construct list of names of catalog files to be constructed.
- if test -n "$LINGUAS"; then
- for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done
- fi
- fi
-
- dnl Determine which catalog format we have (if any is needed)
- dnl For now we know about two different formats:
- dnl Linux and the normal X/Open format
- test -d intl || mkdir intl
- if test "$CATOBJEXT" = ".cat"; then
- AC_CHECK_HEADER(linux/version.h, msgformat=linux, msgformat=xopen)
-
- dnl Transform the SED scripts while copying because some dumb SEDs
- dnl cannot handle comments.
- sed -e '/^#/d' $srcdir/intl/$msgformat-msg.sed > intl/po2msg.sed
- fi
- dnl po2tbl.sed is always needed.
- sed -e '/^#.*[^\\]$/d' -e '/^#$/d' \
- $srcdir/intl/po2tbl.sed.in > intl/po2tbl.sed
-
- dnl In the intl/Makefile.in we have a special dependency which makes
- dnl only sense for gettext. We comment this out for non-gettext
- dnl packages.
- if test "$PACKAGE" = "gettext"; then
- GT_NO="#NO#"
- GT_YES=
- else
- GT_NO=
- GT_YES="#YES#"
- fi
- AC_SUBST(GT_NO)
- AC_SUBST(GT_YES)
-
- dnl If the AC_CONFIG_AUX_DIR macro for autoconf is used we possibly
- dnl find the mkinstalldirs script in another subdir but ($top_srcdir).
- dnl Try to locate is.
- MKINSTALLDIRS=
- if test $ac_aux_dir; then
- MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs"
- fi
- if test -z $MKINSTALLDIRS; then
- MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs"
- fi
- AC_SUBST(MKINSTALLDIRS)
-
- dnl Generate list of files to be processed by xgettext which will
- dnl be included in po/Makefile.
- test -d po || mkdir po
- if test "x$srcdir" != "x."; then
- if test "x`echo $srcdir | sed 's@/.*@@'`" = "x"; then
- posrcprefix="$srcdir/"
- else
- posrcprefix="../$srcdir/"
- fi
- else
- posrcprefix="../"
- fi
- sed -e "/^#/d" -e "/^\$/d" -e "s,.*, $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \
- < $srcdir/po/POTFILES.in > po/POTFILES
- ])
-